package com.naiterui.ehp.bs.ds.modules.order.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.naiterui.ehp.bp.support.exception.BusinessException;
import com.naiterui.ehp.bs.ds.common.utils.PageVO;
import com.naiterui.ehp.bs.ds.common.vo.PageParamsVO;
import com.naiterui.ehp.bs.ds.modules.order.entity.ReturnOrder;
import com.naiterui.ehp.bs.ds.modules.order.vo.ExchangeOrderDetailVO;
import com.naiterui.ehp.bs.ds.modules.order.vo.LogisticsCompanyVO;
import com.naiterui.ehp.bs.ds.modules.order.vo.ReturnOrderDetailVO;
import com.naiterui.ehp.bs.ds.modules.order.vo.ReturnOrderParamVO;
import com.naiterui.ehp.bs.ds.modules.order.vo.SupplementaryOrderDetailVO;

public interface IReturnOrderService extends IService<ReturnOrder> {

    /**
     * <pre>
     *     查询退换货订单列表
     * </pre>
     */
    PageVO<ReturnOrderDetailVO> queryPage(PageParamsVO pageParamsVO, ReturnOrderParamVO paramVO);

    /**
     * <pre>获取退货订单详情</pre>
     *
     * @param orderId
     *
     * @return
     */
    ReturnOrderDetailVO getReturnOrderDetail(Long orderId);

    /**
     * <pre>获取换货订单详情</pre>
     *
     * @param orderId
     *
     * @return
     */
    ExchangeOrderDetailVO getExchangeOrderDetail(Long orderId);

    /**
     * <pre>获取补寄订单详情</pre>
     *
     * @param orderId
     *
     * @return
     */
    SupplementaryOrderDetailVO getSupplementaryOrderDetail(Long orderId);

    /**
     * <pre>批量确认收货</pre>
     *
     * @param ids
     *
     * @throws BusinessException
     */
    void confirm(List<Long> ids) throws BusinessException;

    List<LogisticsCompanyVO> logisticsCompanyList();

}
